package Facturacion;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;


public class Producto {

		private float precio;
		private String codBarra;
		private String descripcion;
		

		public float getPrecio() {
			return precio;
		}

		public void setPrecio(float precio) {
			this.precio = precio;
		}
		

		public String getCodBarra() {
		return codBarra;
		}

		public void setCodBarra(String codBarra) {
		this.codBarra = codBarra;
		}

		public String getDescripcion() {
		return descripcion;
		}

		public void setDescripcion(String descripcion) {
		this.descripcion = descripcion;
		}

	
		//Guardo un producto en la base de datos
		public void save(){
			try{
				Connection connection = DriverManager.getConnection("jdbc:mysql://localhost/facturacion?user=root");
				PreparedStatement statement = connection.prepareStatement("INSERT INTO producto(precio, codigoBarra, descripcion) VALUES (?, ?, ?)");
				statement.setDouble(1, this.precio);
				statement.setString(2, this.codBarra);
				statement.setString(3, this.descripcion);
				
				statement.execute();
				
			} catch(SQLException e) {
				throw new RuntimeException("Error al acceder a la Base de datos", e);
			}
		}
		public Producto findByCodigo (String codigo) throws SQLException {
	
			Connection connection = DriverManager.getConnection("jdbc:mysql://localhost/facturacion?user=root");
			
		
			PreparedStatement pSt = connection.prepareStatement("SELECT precio, codigoBarra, descripcion FROM producto WHERE codigoBarra = ?");
			
			pSt.setString (1, codigo);
			
			ResultSet rSet= pSt.executeQuery();
			
			Producto producto = null;
			
			while(rSet.next()){
				producto = new Producto();
				producto.setPrecio(rSet.getFloat("precio"));
				producto.setCodBarra(rSet.getString("codigoBarra"));
				producto.setDescripcion(rSet.getString("descripcion"));
				
				}
			//System.out.println(producto.getDescripcion());
			
			pSt.close();
			connection.close();
			return producto;
			}

		
}
